DOM (Document Object Model) কি এবং কিভাবে কাজ করে?

Java Technologies - জেসুপ (JSoup) - DOM ট্রাভার্সাল এবং নেভিগেশন
602

DOM (Document Object Model) হল একটি API যা HTML এবং XML ডকুমেন্টের কাঠামো এবং বিষয়বস্তুকে মেমরিতে একটি গঠনমূলক আকারে উপস্থাপন করে। এটি ডকুমেন্টের প্রতিটি উপাদানকে একটি অবজেক্ট হিসেবে উপস্থাপন করে, যার মাধ্যমে কোডে তথ্য এক্সট্র্যাক্ট করা, পরিবর্তন করা, বা ম্যানিপুলেট করা যায়। DOM হল একটি ভাষা-স্বাধীন ইন্টারফেস, অর্থাৎ এটি যেকোনো প্রোগ্রামিং ভাষায় ব্যবহার করা যেতে পারে, তবে JavaScript এর সাথে এটি বেশ জনপ্রিয়।

জেসুপ (JSoup) এর মাধ্যমে HTML ডকুমেন্টের DOM গঠনকে সহজভাবে ম্যানিপুলেট করা সম্ভব হয়। JSoup DOM এর মাধ্যমে HTML ডকুমেন্টের বিভিন্ন উপাদান, যেমন ট্যাগ, ক্লাস, আইডি ইত্যাদি নিয়ে কাজ করতে সক্ষম।


DOM কিভাবে কাজ করে?

DOM হল একটি গাছের মতো গঠন যেখানে HTML ডকুমেন্টের প্রতিটি উপাদান একটি নোড (Node) হিসেবে উপস্থাপিত হয়। প্রধানভাবে তিন ধরনের নোড থাকে:

  1. Document Node: HTML ডকুমেন্টের মূল নোড, যা পুরো HTML ডকুমেন্টকে উপস্থাপন করে।
  2. Element Node: HTML ট্যাগগুলির প্রতিনিধিত্বকারী নোড (যেমন <div>, <p> ইত্যাদি)।
  3. Text Node: ট্যাগের মধ্যে থাকা টেক্সটের প্রতিনিধিত্বকারী নোড।

HTML ডকুমেন্টের উপাদানগুলি এই গাছের শাখার মতো সংযুক্ত থাকে এবং যেকোনো নোডে পৌঁছানো বা ম্যানিপুলেট করা সহজ হয়ে ওঠে। DOM এর সাহায্যে Java কোডে HTML ডকুমেন্টের ভিতরের উপাদানগুলির উপর বিভিন্ন ধরনের কাজ করা যায় যেমন: তথ্য বের করা, নতুন উপাদান তৈরি করা, অথবা পুরানো উপাদান মুছে ফেলা।


JSoup এর মাধ্যমে DOM ম্যানিপুলেশন

JSoup ডকুমেন্ট পার্স করার পরে, আপনি ডকুমেন্টের DOM স্ট্রাকচারে অ্যাক্সেস পেয়ে থাকেন। JSoup লাইব্রেরি DOM এর সাথে ইন্টারঅ্যাক্ট করার জন্য বিভিন্ন মেথড প্রদান করে। নিচে কিছু সাধারণ কাজ দেখানো হলো যেগুলি JSoup ব্যবহার করে DOM এর মাধ্যমে করা যায়।

HTML ডকুমেন্ট পার্স করা

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupDOMExample {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Example Page</title></head><body><h1>Welcome to JSoup</h1><p>This is a paragraph.</p></body></html>";
        
        // HTML পার্সিং
        Document doc = Jsoup.parse(html);
        
        // Document Node অ্যাক্সেস করা
        String title = doc.title();
        System.out.println("Title: " + title);  // Output: Example Page
    }
}

এই কোডে, Jsoup.parse() মেথড দ্বারা HTML ডকুমেন্ট পার্স করা হয়েছে এবং এর পরে doc.title() মেথড ব্যবহার করে ডকুমেন্টের টাইটেল এক্সট্র্যাক্ট করা হয়েছে।

DOM ম্যানিপুলেশন

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupManipulationExample {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Example Page</title></head><body><h1>Welcome to JSoup</h1><p>This is a paragraph.</p></body></html>";
        
        // HTML পার্সিং
        Document doc = Jsoup.parse(html);
        
        // Element Node এর মধ্যে টেক্সট ম্যানিপুলেট করা
        Element heading = doc.select("h1").first();
        heading.text("JSoup DOM Manipulation");
        
        System.out.println(heading.text());  // Output: JSoup DOM Manipulation
    }
}

এখানে, doc.select("h1").first() দিয়ে প্রথম <h1> ট্যাগটি নির্বাচন করা হয়েছে এবং heading.text() মেথডের মাধ্যমে এর টেক্সট পরিবর্তন করা হয়েছে।

নতুন উপাদান যোগ করা

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class JsoupAddElementExample {
    public static void main(String[] args) throws Exception {
        String html = "<html><head><title>Example Page</title></head><body><h1>Welcome to JSoup</h1></body></html>";
        
        // HTML পার্সিং
        Document doc = Jsoup.parse(html);
        
        // নতুন প্যারাগ্রাফ উপাদান যোগ করা
        Element newPara = doc.createElement("p");
        newPara.text("This is a new paragraph.");
        doc.body().appendChild(newPara);
        
        System.out.println(doc.body().html());  // নতুন প্যারাগ্রাফ সহ HTML আউটপুট
    }
}

এখানে, একটি নতুন <p> ট্যাগ তৈরি করা হয়েছে এবং সেটি HTML ডকুমেন্টের বডি অংশে যোগ করা হয়েছে।


সারাংশ

DOM (Document Object Model) হল HTML বা XML ডকুমেন্টের কাঠামোগত উপস্থাপনা যা প্রোগ্রামিং ভাষার মাধ্যমে ম্যানিপুলেশন ও অ্যাক্সেস করতে সহায়ক। JSoup এর মাধ্যমে HTML ডকুমেন্টের DOM এর সাথে ইন্টারঅ্যাক্ট করা সহজ হয় এবং আপনি সহজে HTML থেকে ডাটা এক্সট্র্যাক্ট, পরিবর্তন, বা ম্যানিপুলেট করতে পারেন। JSoup এর DOM ম্যানিপুলেশন ক্ষমতা খুবই শক্তিশালী এবং এটি HTML ডকুমেন্টের বিভিন্ন উপাদানের উপর কাজ করার জন্য একটি শক্তিশালী টুল প্রদান করে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...